CREATE LUT
4300$ , 5600$ , 4700$ ,

: RDCPU  ( m a -- m d a ) DUP @ SWAP 2+ ;
: RDVDP  ( m a -- m d a ) DUP VDP@  >< SWAP 1+ DUP VDP@  ROT OR SWAP 1+ ;
: RDGROM ( m a -- m d a ) DUP GROM@ >< SWAP 1+ DUP GROM@ ROT OR SWAP 1+ ;

CREATE ETAB
' RDCPU , ' RDVDP , ' RDGROM ,

: RDMEM ( m a -- m a )
  OVER ETAB 2+ + @ EXECUTE
;

: (DUMP) ( mode addr count -- )
	BASE @ >R
	ZEROS @ >R 
	TRUE ZEROS !  CR 
	2/
	0 DO
		 OVER LUT 2+ + C@ EMIT  DUP $.
		 3 FOR RDMEM SWAP $. NEXT
		 8 -
		 3 FOR 
		   RDMEM SWAP DUP FF00$ AND >< EMIT FF$ AND EMIT
		 NEXT
		 CR KEY? 2 = IF LEAVE THEN
	 4 +LOOP
	 DROP
	 R> ZEROS !
	 R> BASE !
	 DROP
;

: DUMP  ( addr count -- ) 0 -ROT (DUMP) ;
: VDUMP ( addr count -- ) 2 -ROT (DUMP) ;
: GDUMP ( addr count -- ) 4 -ROT (DUMP) ;
